package org.summerframework.component.security.annotion;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * 用户权限认证
 *
 * @author 石超
 * @version v1.0.0
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface RoleRequired {
    @AliasFor("code")
    String[] value() default {"ADMIN"};

    @AliasFor("value")
    String[] code() default {"ADMIN"};

    String[] name() default {"超级管理员"};

    int sortIndex() default 0;

    String parentCode() default "";

    //当value有多个值的时候  该值有效,   如果false   多个值有一个权限则通过    true时 所有必须拥有所有权限
    boolean isAllRole() default false;

    @Documented
    @Retention(RetentionPolicy.RUNTIME)
    @Target({ElementType.METHOD, ElementType.TYPE})
    @interface List {
        RoleRequired[] value();
    }
}
